<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        /*
         箭头函数this指向
        结论：向外层作用域中查找this,直到有this的定义的时候
        */

        const obj={
            // 普通函数的this指向的就是谁来调用我我就代表谁 obj
           aaa:function(){
               console.log(this)
           },
           //obj对象并不产生作用域 外层作用域还是指window
           bbb:()=>console.log('b this',this),

           ccc(){
            //  普通函数 输出结果是obj
               console.log(this);
            //   匿名函数 没有调用者 this 指的是window
               setTimeout(function(){console.log(this)});
           },

           ddd(){
            // 
            setTimeout(() => {
                // 输出obj 向外层查找
               console.log(this) 
            });
           }

        }
        obj.aaa();
        obj.bbb();
        obj.ccc();
        obj.ddd();

    </script>
</body>

</html>